<template>
  <div>
    <h1>人员列表</h1>
    <h3 style="color: red">calculate组件的计算总和:{{sum}}</h3>
    <input type="text" placeholder="请输入你要添加的名字" v-model="name">
    <button @click="addPersons">添加</button>
    <button @click="addPersonWang">添加一个姓王的人</button>
    <button @click="addPersonServer">随机添加一个人</button>
    <h3>第一个人的名字:{{FirstPersonName}}</h3>
    <ul>
      <li v-for="(p,index) in persons" :key="index">{{p.name}}</li>
    </ul>
  </div>
</template>

<script>
import {nanoid} from "nanoid";
import {mapState} from "vuex";

export default {
  name: "my-person",
  data() {
    return{
      name:''
    }
  },
  computed:{
    ...mapState('personAbout',['persons','sum']),
    FirstPersonName() {
      // 不用map的情况下 这样获取getters里的数据
      return this.$store.getters['personAbout/FirstPersonName'];
    }
  },
  methods:{
    addPersons() {
      // 调用vuex中的方法的时候 要怎么写(模块化)
      this.$store.commit('personAbout/ADD_PERSON',{id:nanoid(),name:this.name})
    },
    addPersonWang() {
      // 调用actions中的方法时 该这样写
      this.$store.dispatch('personAbout/addPersonWang',{id:nanoid(),name:this.name});
      this.name = '';
    },
    addPersonServer() {
      this.$store.dispatch('personAbout/addPersonServer');
    }
  }
}
</script>

<style scoped>

</style>